Практика
Разработчику
Аналитику
Тестировщику
Архитектору
Инженеру
Практика
В предыдущей главе мы создавали свой мини-проект - калькулятор на HTML, добавим стили с помощью CSS-файла, чтобы сделать калькулятор более привлекательным:
- создайте файл style.css и выведите стили туда;
- добавим визуальные и текстовые подсказки при наведении на поля и кнопки;
- добавим плейсхолдеры в полях ввода;
- добавим сообщение об ошибке;
- добавим чёткое обозначение места для результата;
- добавим адаптивный дизайн для мобильных устройств
- добавьте основные стили - calculator, calculator:hover;
- поля ввода с подсказками:
- input-group,
- input-group input,
- input-group input:focus,
- input-group .tooltip,
- input-group:hover .tooltip
- кнопки операций:
- buttons;
- button;
- button:hover;
- button:active;
- блок результата: result;
- сообщение об ошибке – error-message;
- элементы адаптивности - @media для calculator.
Проверьте html:
- добавьте в head:
<link rel="stylesheet" href="style.css">
- адаптируйте body под наш CSS:
<div class="calculator">
<div class="input-group">
<input type="number" id="num1" placeholder="Введите число">
<span class="tooltip">Первое число для операции</span>
</div>
<div class="input-group">
<input type="number" id="num2" placeholder="Введите число">
<span class="tooltip">Второе число для операции</span>
</div>
<div class="buttons">
<button title="Сложение">+</button>
<button title="Вычитание">-</button>
<button title="Умножение">×</button>
<button title="Деление">÷</button>
</div>
<button class="equals" title="Вычислить результат">=</button>
<div class="result" id="result">Здесь будет результат</div>
<div class="error-message" id="error"></div>
<noscript>
<div class="error-message">
Для работы калькулятора требуется JavaScript. Пожалуйста, включите его в настройках браузера.
</div>
</noscript>
</div>
- вот как должен будет выглядеть CSS:
.calculator {
background: white;
border-radius: 20px;
box-shadow: 0 10px 30px rgba(0, 0, 0, 0.1);
padding: 30px;
width: 320px;
margin: 40px auto;
transition: transform 0.3s ease;
}
.calculator:hover {
transform: translateY(-5px);
}
.input-group {
position: relative;
margin: 15px 0;
}
.input-group input {
width: 100%;
padding: 12px 15px;
border: 2px solid #e0e0e0;
border-radius: 10px;
font-size: 16px;
transition: all 0.3s;
}
.input-group input:focus {
border-color: #6c63ff;
outline: none;
box-shadow: 0 0 0 3px rgba(108, 99, 255, 0.2);
}
.input-group .tooltip {
visibility: hidden;
width: 120px;
background-color: #555;
color: #fff;
text-align: center;
border-radius: 6px;
padding: 5px;
position: absolute;
z-index: 1;
bottom: 125%;
left: 50%;
transform: translateX(-50%);
opacity: 0;
transition: opacity 0.3s;
}
.input-group:hover .tooltip {
visibility: visible;
opacity: 1;
}
.buttons {
display: grid;
grid-template-columns: repeat(4, 1fr);
gap: 10px;
margin: 20px 0;
}
button {
background: #6c63ff;
color: white;
border: none;
padding: 15px 0;
border-radius: 10px;
font-size: 18px;
cursor: pointer;
transition: all 0.3s;
}
button:hover {
background: #5a52e0;
transform: translateY(-2px);
}
button:active {
transform: translateY(0);
}
.result {
margin-top: 20px;
padding: 15px;
background: #f8f9fa;
border-radius: 10px;
font-size: 18px;
text-align: center;
border: 1px dashed #dee2e6;
min-height: 20px;
}
.error-message {
color: #dc3545;
font-size: 14px;
margin-top: 5px;
display: none;
}
@media (max-width: 400px) {
.calculator {
width: 100%;
padding: 20px;
}
}
См. также
Другие статьи этого же раздела в боковом меню (как на странице «О разделе»). В CSS тег используется как селектор по типу, например p color — black; . Тег используется для подключения внешних ресурсов к HTML-документу. Наиболее распространённое применение — подключение CSS-файлов. Переменные в CSS — это именованные значения, которые хранят информацию для многократного использования в стилях веб-страницы. Эти величины обеспечивают централизованное управление стилями и сокращают… Контентовая модель — это поведение по умолчанию для всех HTML-элементов. В этой модели свойства width и height определяют только размеры контентной области, то есть внутренней части элемента, где… Мы разберём различные примеры типовых элементов интерфейса, в формате HTML и CSS. Можете добавлять и экспериментировать - для удобства, в HTML-части будет создаваться элемент, а в CSS - стиль. Flexbox (Flexible Box Layout) — это модуль CSS, предоставляющий механизм эффективного распределения свободного пространства и выравнивания элементов в контейнере, ориентированном вдоль одной оси.… Как работает CSS, как читать единицы измерения и планировать размещение. Апострофы — не являются частью синтаксиса CSS, но могут встречаться в строках (например, в content). Псевдоклассы изначально записывались с одним двоеточием ( — hover), а псевдоэлементы — также с одним ( — before). В CSS3 был введён чёткий синтаксис — Псевдоклассы — одно двоеточие ( — nth-child, —… transform — это свойство CSS, которое применяет геометрические преобразования к элементу — перемещение, поворот, масштабирование, наклон и другие трансформации. Эти изменения не влияют на поток… Что такое адаптивность, как подстроиться под разные экраны. — Синтаксис — ? — Используется с animation-timeline — view() — Пример — animation-range — entry 0 cover 50 — Позволяет задавать диапазон прогресса анимации в зависимости от видимости.CSS
Подключение и организация CSS-кода
Переменные в CSS
Блочная модель и механизм каскадирования
Типовые элементы интерфейса
Flexbox и CSS Grid
Основные стили в CSS
Синтаксис и пунктуация в CSS
Псевдоклассы и псевдоэлементы
Анимации, переходы и трансформации
Адаптивный и отзывчивый дизайн
Справочник по CSS